3.6 使用Dockerfile构建Docker镜像

下面我们以microservice-discovery-eureka项目为例,我们首先执行

  1. mvn clean package # 使用Maven打包项目

将项目构建成jar包:microservice-discovery-eureka-0.0.1-SNAPSHOT.jar ,那么如果我们想要启动项目则只需要在microservice-discovery-eureka-0.0.1-SNAPSHOT.jar所在的目录(即项目的target目录)执行:

  1. java -jar microservice-discovery-eureka-0.0.1-SNAPSHOT.jar

那么如果我们现在想要将项目在Docker容器中运行,需要怎么做呢?

使用Dockerfile构建Docker镜像

  • microservice-discovery-eureka-0.0.1-SNAPSHOT.jar所在目录(默认即:项目构建后的target目录,当然也可以将jar文件拷贝到其他任意路径),创建文件,命名为Dockerfile
  1. # 基于哪个镜像
  2. FROM java:8
  3. # 将本地文件夹挂载到当前容器
  4. VOLUME /tmp
  5. # 拷贝文件到容器,也可以直接写成ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar /app.jar
  6. ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar app.jar
  7. RUN bash -c 'touch /app.jar'
  8. # 开放8761端口
  9. EXPOSE 8761
  10. # 配置容器启动后执行的命令
  11. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  • 构建docker镜像,执行:
  1. docker build -t eacdy/test1 . # 格式:docker build -t 标签名称 Dockerfile的相对位置

构建成功:Successfully built a7cc6f4de088

  • 启动镜像
  1. docker run -p 8761:8761 eacdy/test1
  • 访问http://Docker宿主机IP:8761 ,我们会发现Eureka能够正常被访问。

参考文档

基于Dockerfile搭建JAVA Tomcat运行环境:http://www.blogjava.net/yongboy/archive/2013/12/16/407643.html

Docker实现增量发布之前期准备:http://blog.csdn.net/zssureqh/article/details/52009043

Dockerfile详解:http://blog.csdn.net/wsscy2004/article/details/25878223

Dockerfile RUN/CMD/ENTRYPOINT命令详解:@126/blog/static/163877040201410411715832/"">http://blog.163.com/digoal@126/blog/static/163877040201410411715832/

如何使用Dockerfile构建镜像:http://blog.csdn.net/qinyushuang/article/details/43342553